home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 47.7z
/
BS1 part 47
/
ImageMaster RT v1.50b (1994)(Black Belt Systems)(Disk 4 of 7)[HD].7z
/
ImageMaster RT v1.50b (1994)(Black Belt Systems)(Disk 4 of 7)[HD].adf
/
apa.lzh.parta
/
hlp_arexx11
< prev
next >
Wrap
Text File
|
1994-04-19
|
31KB
|
1,222 lines
\ApAssist
\: - This is the Quick Help for the ARexx in IM R/t -
\: ----------------------------------------------------------
\: Written by David E. Patterson
\: ----------------------------------------------------------
\font topaz.font 8
\tc 1
\wr
\lj
\dd "imh_descriptor"
\index "hlp_arexx2/setmulti-undo"
\toc "imh_toc/toc"
\help "aa_help/help
\node "settocolor"
\title "Set to color"
\next "shade"
\prev ""
\{ \tc 15 Settocolor \} - Colorizes black and white images
\nw
Usage - '\{ \tc 15 settocolor <red> <green> <blue>\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 settocolor 34 80 200\} ';
* User Interface: \{ \tc 15 Process Panel
Standard Adjustments
Set to Color\}
\endnode
\node "shade"
\title "Shade"
\next "sharp"
\prev "settocolor"
\{ \tc 15 Shade \} - Shades the selected region
Uses the secondary buffer image to control the shading of the primary buffer.
\nw
Usage - '\{ \tc 15 shade <effect>\} ';
\{ \tc 15 Effect: 0 to 100\}
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 shade 80\} ';
\endnode
\node "sharp"
\title "Sharp"
\next "shear"
\prev "shade"
\{ \tc 15 Sharp \} - Applies a sharpening convolution.
Applies a sharpening convolution (3X3) to a selected region.
\nw
Usage - '\{ \tc 15 sharp <effect>\} '
\{ \tc 15 Effect: 0 to 100\}
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 sharp 80\} ';
* User Interface: \{ \tc 15 Process Panel
Filters
Sharpen\}
\endnode
\node "shear"
\title "Shear"
\next "shgeog"
\prev "sharp"
\{ \tc 15 Shear \} - Creates a shearing effect.
\nw
Usage - '\{ \tc 15 shear <length>\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 shear 20\} ';
* User Interface: \{ \tc 15 Process Panel
Special Effects
Shear\}
\endnode
\node "shgeog"
\title "Shadowed Elevation"
\next "shine"
\prev "shear"
\{ \tc 15 Shgeog \} - Creates a shadowed Geographic Elevation.
\nw
Usage - '\{ \tc 15 shgeog <sealevel>\} '
\{ \ts bu Sample Script\} :
options results;
'askprop Sealevel: 127 0 255';
'sealevel = result';
options;
'area';
'\{ \tc 15 shgeog\} ' sealevel;
See Also: \{ \ts b \link "geog" "hlp_arexx7/geog"\}
* User Interface: \{ \tc 15 Process Panel
Special Effects
Shadowed Elevations\}
\endnode
\node "shine"
\title "Make Shine"
\next "simpload"
\prev "shgeog"
\{ \tc 15 Shine \} - Creates an effect similar to a star camera lens.
\nw
Usage - '\{ \tc 15 shine <amount> <length>\} '
\{ \ts bu Sample Script\} :
'area';
options results;
'askprop Amount: 50 0 100';
amount = result;
'askprop length: 100 0 200';
length = result;
options;
'\{ \tc 15 shine \} 'amount length;
* User Interface: \{ \tc 15 Process Panel
Special Effects
Make Shine\}
\endnode
\node "simpload"
\title "Simpload"
\next "sine"
\prev "shine"
\{ \tc 15 Load \} - Loads an image to an untargeted buffer.
Uses the current image path and extension and to load an image.
\nw
Usage - '\{ \tc 15 simpload <filename>\} '
\{ \ts bu Sample Script\} :
options results;
'askstring "Buffername:" "myfile"'name;
name = result;
options;
'\{ \tc 15 simpload\} ' name;
\endnode
\node "sine"
\title "Sine"
\next "smear"
\prev "simpload"
\{ \tc 15 Sine \} - Creates a sine wave distortion in a selected area.
\nw
Usage - '\{ \tc 15 sine <horizontal%> <horizontal-period>
<vertical%> <vertical-period>\} '
\{ \ts bu Sample Script\} :
'area';
options results;
'askprop Horizontal_Effect: 50 0 100';
heffect = result;
'askprop Horizontal_Period: 150 0 300';
Hperiod = result;
'askprop Vertical_Effect: 50 0 100';
Veffect = result;
'askprop Vertical_Period: 150 0 300';
Vperiod = result;
options;
'\{ \tc 15 sine\} ' heffect hperiod veffect vperiod ;
* User Interface: \{ \tc 15 Process Panel
Geometric Transformations
Wave Distort\}
\endnode
\node "smear"
\title "Smear"
\next "smearamount"
\prev "sine"
\{ \tc 15 Smear \} - Smears a selected region.
\nw
Usage - '\{ \tc 15 smear <effect>\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 smear 60\} ';
* User Interface: \{ \tc 15 Process Panel
Filters
Smear\}
\endnode
\node "smearamount"
\title "Smearamount"
\next "smoothrange"
\prev "smear"
\{ \tc 15 Smearamount \} - This command is used to set the smear amount for
the absorbing brush draw mode. The smear amount is a numeric value between 0
and 100. A setting of 0 will produce no smearing, and a setting of 100 will
produce the maximum amount of smear.
\nw
Usage - '\{ \tc 15 smearamount <amount>\} '
\{ \ts bu Sample Script\} :
/* arexx Linemode Example */
address('IM_Port');
'newline';
'linemode absorb';
'\{ \tc 15 smearamount 56\} ';
'move 320 0';
'draw 0 200';
'stroke';
'finish';
\endnode
\node "smoothrange"
\title "Smoothrange"
\next "solar"
\prev "smearamount"
\{ \tc 15 Smoothrange \} - This command will turn the smooth range control on
and off. If the control is on, the selected range will be smoothed. If the
control is off, the selected range will not be smoothed.
\nw
Usage - '\{ \tc 15 autosmooth <mode>\} '
Where the mode is auto smooth on or off (1 or 0).
\{ \ts bu Sample Script\} :
/* arexx Linemode Example */
address('IM_Port');
'newline';
'\{ \tc 15 smoothrange 1\} ';
'autosize';
'linemode 1';
'move 30 30';
'draw 30 270';
'stroke';
'finish';
\endnode
\node "solar"
\title "Solarize"
\next "spiral"
\prev "smoothrange"
\{ \tc 15 Solar \} - Solarizes selected region.
Changes the image colors based on the monochrome brightness, to a range with
blue representing darker pixels, green representing middle grey levels, and
red representing brighter pixels.
\nw
Usage - '\{ \tc 15 solar\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 solar\} ';
* User Interface: \{ \tc 15 Process Panel
Special Effects
Solarize\}
\endnode
\node "spiral"
\title "Spiral Blur"
\next "startwet"
\prev "solar"
\{ \tc 15 Spiral \} - Creates a spiral motion blur.
\nw
Usage - '\{ \tc 15 spiral <direction> <amount>\} '
\{ \ts bu Sample Script:\}
'area';
options results;
'askyn Outwards Inwards';
direction = result;
'askprop Effect: 50 0 100';
effect = result;
options;
'\{ \tc 15 spiral\} ' direction effect;
* User Interface: \{ \tc 15 Process Panel
Geometric Transformations
Spiral Blur\}
\endnode
\node "startwet"
\title "Start Wet"
\next "stepped"
\prev "spiral"
\{ \tc 15 Startwet \} - This control will turn the absorbing brush wetness on
or off. If this command is on, the brush will start "full of paint". This
means that the absorbing brush will begin with the initial color of the
brush, and gradually absorb paint from the image as the brush is moved. If
this control is off, the brush will start with no paint. This will produce
an effect that is similar to pulling a dry brush through wet paint.
\nw
Usage - '\{ \tc 15 startwet ON/OFF\} ' or '\{ \tc 15 startwet 1/0\} '
\{ \ts bu Sample Script\} :
/* arexx startwet Example */
address('IM_Port');
'newline';
'linemode absorb';
'smearamount 56';
'startwet on';
'move 0 0';
'draw 320 400';
'stroke';
'finish';
\endnode
\node "stepped"
\title "Stepped Zoom"
\next "stopseq"
\prev "startwet"
\{ \tc 15 Stepped \} - Clips region and rescales it to another buffer.
\nw
Usage - '\{ \tc 15 stepped <Xzoom> <Yzoom> [new name]\} '
Xzoom: 1 = Horizontal reduced by half
2 = No horizontal change
3 = Horizontal enlarged by 2 times
Yzoom: 1 = Vertical reduced by half
2 = No Vertical change
3 = Vertical enlarged by 2 times
New Name: Optional name for new buffer
\{ \ts bu Sample Script\} :
'area';
options results;
'gadgets "Horizontal","Reduced by .5" "NO" "Horizontal Change"
"Horizontal","Enlarged by 2 X"';
Xzoom = result;
'gadgets "Vertical","Reduced by .5" "NO" "Vertical Change"
"Vertical","Enlarged by 2 X"';
Yzoom = result;
options;
'\{ \tc 15 stepped\} ' xzoom yzoom steppedbuff;
* User Interface: \{ \tc 15 Process Panel
Re-sizing and Clipping
Zoom Clip\}
\endnode
\node "stopseq"
\title "Stop Sequence"
\next "stretch"
\prev "stepped"
\{ \tc 15 Stopeseq \} - Stops the multiframe sequencer from continuing. This
command can be useful for error message handeling in the sequencer.
\nw
Usage - '\{ \tc 15 stopseq\} '
\endnode
\node "stretch"
\title "Stretch"
\next "stroke"
\prev "stopseq"
\{ \tc 15 Stretch \} - Clips region and resizes it to a new buffer.
\nw
Usage - '\{ \tc 15 stretch <xsize> <ysize> [new_name]\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 stretch 640 400 MyClip\} ';
* User Interface: \{ \tc 15 Process Panel
Re-sizing and Clipping
Strech Clip\}
\endnode
\node "stroke"
\title "Stroke"
\next "sub"
\prev "stretch"
\{ \tc 15 Stroke \} - The stroke command is used with the move and draw
commands to paint a line using ARexx. The stroke command should follow any
sequence od move and draw commands. When it is called Imagemaster will
redraw the image at that time. Remember, you can use several move and draw
commands to create complex polylines and shapes. The stroke command can also
be used with the ishape command to paint areas specified by an IShape.
\nw
Usage - '\{ \tc 15 stroke\} '
\{ \ts bu Sample Script\} :
/* arexx Painting Example */
address('IM_Port');
options results;
'askprop "Initial X Position: " 100 0 320';
x1 = result;
'askprop "Initial Y Position: "100 0 200';
y1 = result;
'askprop "Final X Position: " 100 0 320';
x2 = result;
'askprop "Final Y Position: " 100 0 200';
y2 = result;
'askprop "Specify the Pressure Amount: " 100 0 255';
press = result;
options;
'newline';
'move ' x1 y1;
'draw ' x2 y2 press;
'\{ \tc darkblue stroke\} ';
'finish';
Related ARexx Commands: \{ \ts b \link " move " "imdoc:hlp_arexx9/move"
\link " draw " "imdoc:hlp_arexx6/draw"
\link "ishape" "imdoc:hlp_arexx7/ishape" \}
\endnode
\node "sub"
\title "Subtract"
\next "swirl"
\prev "stroke"
\{ \tc 15 Sub \} - Subtracts the secondary buffer from the primary buffer.
\nw
Usage - '\{ \tc 15 sub\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 sub\} ';
* User Interface: \{ \tc 15 Compose Panel
Algebraic Compositions
Subtract\}
\endnode
\node "swirl"
\title "Swirl"
\next "thick"
\prev "sub"
\{ \tc 15 Swirl \} - Creates a geometric swirling effect in the selected
region.
\nw
Usage - '\{ \tc 15 swirl <angle>\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 swirl 360\} ';
* User Interface: \{ \tc 15 Process Panel
Geometric
Swirl\}
\endnode
\node "thick"
\title "Thick"
\next "thin"
\prev "swirl"
\{ \tc 15 Thick \} - Thickens pixels in a selected region.
\nw
Usage - '\{ \tc 15 thick\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 thick\} ';
* User Interface: \{ \tc 15 Process Panel
Filters
Thicken\}
\endnode
\node "thin"
\title "Thin"
\next "tofront"
\prev "thick"
\{ \tc 15 Thin \} - Applies a pixel thinning procedure to a selected region.
\nw
Usage - '\{ \tc 15 thin\} '
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 thin\} ';
* User Interface: \{ \tc 15 Process Panel
Filters
Thin\}
\endnode
\node "tofront"
\title "To the Front"
\next "trendall"
\prev "thin"
\{ \tc 15 Tofront \} - Brings Imagemaster R/t to the front.
\nw
Usage - '\{ \tc 15 tofront\} '
\{ \ts bu Sample Script\} :
'wbtofront';
'contrast 90';
'\{ \tc 15 tofront\} ';
See Also: \{ \ts b \link "imtofront" "hlp_arexx7/imtofront"
\link "wbtofront" "hlp_arexx12/wbtofront"\}
\endnode
\node "trendall"
\title "Trendall"
\next "trenddraw"
\prev "tofront"
\{ \tc 15 Trendall \} - This command will provide you with all of the trend
information for the specified trend.
Usage - '\{ \tc 15 trendall\} ' "label"
\{ \wr The command will relay all of the trend information for the specified
label. The label and trend are set using the \{ \ts b trenddraw \} command.
The \{ \ts b trenddraw \} command must be completed prior to the call for
this function. You will then need to parse these variables into a usable
format.\}
\{ \ts bu Sample Script\} :
\{ \nw /* arexx Trendall Example */
address('IM_Port');
'trenddraw Freddy 1 10 0 20 5 "Example Trend"';
options results;
'\{ \tc 15 trendall Freddy\} ';
fred = result;
options;
parse var fred var1 ' ' var2
i = 1;
do until (var1 = "")
say 'Trend at '||i||' is '||var1;
fred = var2;
parse var fred var1 ' ' var2
i = i + 1;
end;
'finish'; \}
See Also: \{ \ts b \nw \link "More on the Multi-Frame Sequencer" "mf_hlp/mf_multiframe"
\link " More on Trends " "hlp_trend/hlp_curve"
\link " The trenddraw Command " "trenddraw"
\link " The trendget Command " "trendget"
\link " The trendkill Command " "trendkill"\}
\endnode
\node "trenddraw"
\title "Trenddraw"
\next "trendget"
\prev "trendall"
\{ \tc 15 Trenddraw \} - This command will present the user with a trend
graph for setting an operation parameter over the selected sequence of
images.
Usage - '\{ \tc 15 trenddraw\} ' "label" xmin xmax ymin ymax ydefault "title"
\{ \ts b label \} - The label is the name of the trend that is used for
calling the trend and saving the trend information. The label can be of any
length, but \{ \ts i must \} be quoted.
\{ \ts b xmin \} and \{ \ts b xmax \} - The xmin and xmax are used to specify
the number of frames in the sequence. The easiest way of specifying these
values is displayed in the sample script where the minimum value is set to
one, and the maximum value is set to the number of images that you have
specified in the \{ \ts b Image Files \} list in the multi-frame sequencer.
The trenddraw command does not need to be used with the sequencer, but it is
highly recommended.
\{ \ts b ymin \} and \{ \ts b ymax \} - The y minimum and maximum specify the
minimum and maximum values that the trend parameter can have. For example, a
contrast trend (contrast has a single parameter) can range from -100 to 100,
and therefore has a ymin = -100 and a ymax = 100.
\{ \ts b ydefault \} - This is used to specify the trend parameter's initial
value. For example, the script below specifies a contrast value of zero as
the ydefault.
\{ \ts b title \} - The title will be the title of the trend graph when the
trenddraw command is called. This parameter can become very important in
scripts which contain multiple trenddraw commands.
\{ \ra \image "Clips/BigSplat.pic" l 10 \cap
The script example below is detailed in the section on the \{ \ts b Multi-
Frame Sequencer \} in this manual. This script would be placed in the pre-
render script.\}
\nw
\{ \ts bu Sample Script\} :
\{ \nw /*
* TRENDEXAMPLE.rexx does an asterize trend over a sequence.
* There are three separate trends to set the rotation, number of arms,
* and the width. The script also includes a number of settings to be
* made by the user. These settings only need to be made once for the
* entire animation sequence. The name of this script should be put in
* as the pre-render script.
*/
parse arg iframe nframe '"' renderfile '"'
address('IM_Port');
if iframe = 1 then do
'\{ \tc 15 trenddraw "rotate" 1 '||nframe||' 0 360 0 "Rotation"\} ';
'\{ \tc 15 trenddraw "arm" 1 '||nframe||' 1 100 4 "Arms"\} ';
'\{ \tc 15 trenddraw "width" 1 '||nframe||' 1 100 10 "Width"\} ';
options results;
'askrgb';
colors = result;
parse var colors red','grn','blu;
'askprop "% Center Saturation Percent:" 5 0 100';
sat = result;
'askyn "Taper Off" "Taper On"';
tap = result;
'askyn "Non-Additive" "Additive"';
add = result;
'askyn "No Center Hot Spot" "Center Hot Spot"';
hot = result;
options;
end;
options results;
'trendget "rotate" ' iframe;
rot = result;
'trendget "arm" ' iframe;
arm = result;
'trendget "width" ' iframe;
wid = result;
options;
'rect 10 10 120 120';
'asterize 'red grn blu wid sat tap arm rot add hot;
if iframe = nframe then do
'trendkill "rotate"'; /* Don't do this if you want to keep the curves */
'trendkill "arm"';
'trendkill "width"';
end;
'finish';\}
See Also: \{ \ts b \nw \link "More on the Multi-Frame Sequencer" "mf_hlp/mf_multiframe"
\link " More on Trends " "hlp_trend/hlp_curve"
\link " The trendall Command " "trendall"
\link " The trendget Command " "trendget"
\link " The trendkill Command " "trendkill"\}
\endnode
\node "trendget"
\title "Trendget"
\next "trendkill"
\prev "trenddraw"
\{ \tc 15 Trendget \} - The trendget command is used to retrieve a value from
a specified trend for a specified frame. You supply the command with the
trend label, and the frame number (this is generally the variable \{ \ts b
iframe\} ).
Usage - '\{ \tc 15 trendget\} ' "label" position
\{ \ts b label \} - The label is the name of the trend that is used for
calling the trend and retrieving the trend information. The label can be of
any length, but it \{ \ts i must \} be quoted.
\{ \ts b position \} - The position tells the trendget command which variable
it should return. The position variable should be the same as the current
frame number. This is quite easy to accomplish in the multi-frame sequencer.
The sample script below contains a line which places the current frame
number and the total number of frames into two variables iframe and nframe.
The iframe variable, or current frame, can be used to set the position
variable. This technique is used in the sample script below.
\{ \nw /*
* TRENDEXAMPLE.rexx does an asterize trend over a sequence.
* There are three separate trends to set the rotation, number of arms,
* and the width. The script also includes a number of settings to be
* made by the user. These settings only need to be made once for the
* entire animation sequence. The name of this script should be put in
* as the pre-render script.
*/
parse arg iframe nframe '"' renderfile '"'
address('IM_Port');
if iframe = 1 then do
'trenddraw "rotate" 1 '||nframe||' 0 360 0 "Rotation"';
'trenddraw "arm" 1 '||nframe||' 1 100 4 "Arms"';
'trenddraw "width" 1 '||nframe||' 1 100 10 "Width"';
options results;
'askrgb';
colors = result;
parse var colors red','grn','blu;
'askprop "% Center Saturation Percent:" 5 0 100';
sat = result;
'askyn "Taper Off" "Taper On"';
tap = result;
'askyn "Non-Additive" "Additive"';
add = result;
'askyn "No Center Hot Spot" "Center Hot Spot"';
hot = result;
options;
end;
options results;
'\{ \tc 15 trendget "rotate" ' iframe\} ;
rot = result;
'\{ \tc 15 trendget "arm" ' iframe\} ;
arm = result;
'\{ \tc 15 trendget "width" ' iframe\} ;
wid = result;
options;
'rect 10 10 120 120';
'asterize 'red grn blu wid sat tap arm rot add hot;
if iframe = nframe then do
'trendkill "rotate"'; /* Don't do this if you want to keep the curves */
'trendkill "arm"';
'trendkill "width"';
end;
'finish';\}
See Also: \{ \ts b \nw \link "More on the Multi-Frame Sequencer" "mf_hlp/mf_multiframe"
\link " More on Trends " "hlp_trend/hlp_curve"
\link " The trendall Command " "trendall"
\link " The trenddraw Command " "trenddraw"
\link " The trendkill Command " "trendkill"\}
\endnode
\node "trendkill"
\title "Trendkill"
\next "ftween"
\prev "trendget"
\{ \tc 15 Trendkill \} - The trendkill command is used to kill a specified
trend. This process is optional, and is not necessary for proper execution
of the script. The trendkill simply uses the same label that was initially
specified using the \{ \ts b trenddraw \} command. It is important to
remember that once a trend is killed it will be completely deleted. The
sample script below determines if the sequence has completed the last frame,
and if so, it will kill all of the specified trends. The lines which kill
the trends are \{ \ts i optional\} , and will not effect the accuracy or
performance of the script in any way.
\nw
Usage - '\{ \tc 15 trendkill\} ' "label"
\{ \nw /*
* TRENDEXAMPLE.rexx does an asterize trend over a sequence.
* There are three separate trends to set the rotation, number of arms,
* and the width. The script also includes a number of settings to be
* made by the user. These settings only need to be made once for the
* entire animation sequence. The name of this script should be put in
* as the pre-render script.
*/
parse arg iframe nframe '"' renderfile '"'
address('IM_Port');
if iframe = 1 then do
'trenddraw "rotate" 1 '||nframe||' 0 360 0 "Rotation"';
'trenddraw "arm" 1 '||nframe||' 1 100 4 "Arms"';
'trenddraw "width" 1 '||nframe||' 1 100 10 "Width"';
options results;
'askrgb';
colors = result;
parse var colors red','grn','blu;
'askprop "% Center Saturation Percent:" 5 0 100';
sat = result;
'askyn "Taper Off" "Taper On"';
tap = result;
'askyn "Non-Additive" "Additive"';
add = result;
'askyn "No Center Hot Spot" "Center Hot Spot"';
hot = result;
options;
end;
options results;
'trendget "rotate" ' iframe;
rot = result;
'trendget "arm" ' iframe;
= result;
'trendget "width" ' iframe;
wid = result;
options;
'rect 10 10 120 120';
'asterize 'red grn blu wid sat tap arm rot add hot;
if iframe = nframe then do
'\{ \tc 15 trendkill "rotate"\} '; /* Don't do this if you want to keep the curves */
'\{ \tc 15 trendkill "arm"\} ';
'\{ \tc 15 trendkill "width"\} ';
end;
'finish';\}
See Also: \{ \ts b \nw \link "More on the Multi-Frame Sequencer" "mf_hlp/mf_multiframe"
\link " More on Trends " "hlp_trend/hlp_curve"
\link " The trendall Command " "trendall"
\link " The trenddraw Command " "trenddraw"
\link " The trendget Command " "trendget"\}
\endnode
\node "ftween"
\title "FTween"
\next "tween"
\prev "trendkill"
\{ \tc 15 FTween \} - Provides intermediate values for Multi-Frame Sequence.
FTween ('\{ \tc 15 ftween <startvalue> <loopendvalue>\} ') returns the in between
values needed to create a Multi-Frame Sequence which is intended to run in a
loop, such as a rotation.
An example would be a rotating asterize effect, where the next to last frame
needs to be applied such that the effect is one frame "short" of the effect
of the first frame.
Here is why you need to use FTween, instead of Tween to accomplish this in a
general manner:
Rotation is specified in degrees from 0 to 360. However, 360 is the
\ts i same \ts n as the value zero! So if you go from 0 to 360, you have two
identical frames, which would cause a "jerk" in a looping animation.
FTween "knows" about this situation; so instead of calculating steps from 0
to 360, it adjusts the calculation so that the total number of frames used to
calculate the intermediate values does not include the final frame.
Here's the math Imagemaster R/t performs for the \{ \ts b FTween \} command:
\nw
\{ \tc DarkBlue FrameValue = LastFrame + ((Endvalue - BeginningValue) / TotalFrames) \}
\nw
For example, with 6 frames '\{ \tc 15 ftween 0 360\} ' will return:
0 in frame 1 \{ \ts b (remember 0 is the same as 360 for rotations) \}
60 in frame 2 \{ \ts b (note step size: "60")\}
120 in frame 3
180 in frame 4
240 in frame 5
300 in frame 6 \{ \ts b (the last frame is 60 "away" from 360 - and zero!) \}
If the number of frames is changed to 10 (by changing the number of frames or
selecting more images) '\{ \tc 15 tween 0 360\} ' will return:
0 in frame 1 \{ \ts b (remember 0 is the same as 360 for rotations) \}
36 in frame 2 \{ \ts b (note step size: "36")\}
72 in frame 3
108 in frame 4
144 in frame 5
180 in frame 6
216 in frame 7
252 in frame 8
288 in frame 9
324 in frame 10 \{ \ts b (the last frame is 36 "away" from 360 - and zero!) \}
Usage - '\{ \tc 15 ftween <startvalue> <loopendvalue>\} ';
\{ \ts bu Sample Script\} :
'entire';
options results;
\{ \tc 15 'FTween 0 360';\}
'ast' 255 255 0 25 50 1 4 result 0 0;
'finish';
Here's what it looks like:
\anim "clips/SpinAst.anim" c 0
\flushimage
\{ \ce
\anlink " \tc DarkBlue Play Anim " 0 N 3 100\}
\nw
See Also: \{ \ts b \link " Tween " "tween"\}
\endnode
\node "tween"
\title "Tween"
\next "unantique"
\prev "ftween"
\{ \tc 15 Tween \} - Provides intermediate values for Multi-Frame Sequence.
Tween ('\{ \tc 15 tween <startvalue> <endvalue>\} ') returns the in between
values needed to create a Multi-Frame Sequence. For instance to create a 6
frame sequence where contrast begins at 0 and reaches 100 in the final frame,
'\{ \tc 15 tween 0 100\} ' will use the total number of frames and the
difference between the first and last frame (in this case 100) to generate
the intermediate values needed for the sequence.
Here's the math Imagemaster R/t performs for the \{ \ts b Tween \} command:
\nw
\{ \tc DarkBlue FrameValue = LastFrame + ((Endvalue - BeginningValue) / TotalFrames-1) \}
\nw
For 6 frames '\{ \tc 15 tween 0 100\} ' will return:
0 in frame 1
20 in frame 2
40 in frame 3
60 in frame 4
80 in frame 5
100 in frame 6
If the number of frames is changed to 10 (by changing the number of frames or
selecting more images) '\{ \tc 15 tween 0 100\} ' will return:
0 in frame 1
11 in frame 2
22 in frame 3
33 in frame 4
44 in frame 5
55 in frame 6
66 in frame 7
77 in frame 8
88 in frame 9
100 in frame 10
Usage - '\{ \tc 15 tween <startvalue> <endvalue>\} ';
\{ \ts bu Sample Script\} :
options results;
'entire';
'\{ \tc 15 tween 0 100\} ';
'contrast '||result;
'finish';
\nw
See Also: \{ \ts b \link " FTween " "ftween"\}
\endnode
\node "unantique"
\title "Unantique"
\next "undo"
\prev "tween"
\{ \tc 15 Unantique \} - Reverses the antique effect.
\nw
Usage - '\{ \tc 15 unantique\} ';
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 unantique\} ';
See Also: \{ \ts b \link "antique" "hlp_arexx4/antique"\}
* User Interface: \{ \tc 15 Process Panel
Filters
Un-Antique\}
\endnode
\node "undo"
\title "Undo"
\next "unlockall"
\prev "unantique"
\{ \tc 15 Undo \} - Invokes the undo function.
\nw
Usage - '\{ \tc 15 undo\} '
\{ \ts bu Sample Script\} :
'area';
'contrast 90';
options results;
'askyn Undo Continue';
answer = result;
options;
if answer = 0 then
do
'\{ \tc 15 undo'\} ;
exit 0;
end;
* User Interface: \{ \tc 15 Undo\}
\endnode
\node "unlockall"
\title "Unlockall"
\next "unlockimage"
\prev "undo"
\{ \tc 15 Unlock \} - Unlocks all previously locked buffers.
\nw
Usage - '\{ \tc 15 unlockall\} ';
\{ \ts bu Sample Script\} :
'\{ \tc 15 unlock\} ';
See Also: \{ \ts b \link "lockimage " "hlp_arexx8/lockimage"
\link "unlockimage" "unlockimage"\}
* User Interface: \{ \tc 15 Buffer Panel
Unlock a Buffer\}
\endnode
\node "unlockimage"
\title "Unlockimage"
\next "unlockprimary"
\prev "unlockall"
\{ \tc 15 Unlockimage \} - Unlocks an individual image.
\nw
Usage - '\{ \tc 15 unlockimage <buffer_number>\} '
\{ \ts bu Sample Script\} :
'\{ \tc 15 unlockimage 3\} ';
See Also: \{ \ts b \link "lockimage" "hlp_arexx8/lockimage"\}
* User Interface: \{ \tc 15 Buffer Panel
Unlock a Buffer\}
\endnode
\node "unlockprimary"
\title "Unlock primary buffer"
\next "unlocksecondary"
\prev "unlockimage"
\{ \tc 15 Unlockprimary \} - Unlocks the Primary Buffer.
\nw
Usage - '\{ \tc 15 unlockprimary\} ';
\{ \ts bu Sample Script\} :
'\{ \tc 15 unlockprimary\} ';
See Also: \{ \ts b \link "lockimage" "hlp_arexx8/lockimage"\}
* User Interface: \{ \tc 15 Buffer Panel
Unlock a Buffer\}
\endnode
\node "unlocksecondary"
\title "Unlock Secondary"
\next "unplug"
\prev "unlockprimary"
\{ \tc 15 Unlocksecondary \} - Unlocks the secondary buffer.
\nw
Usage - '\{ \tc 15 unlocksecondary\} '
\{ \ts bu Sample Script\} :
'\{ \tc 15 unlocksecondary\} ';
See Also: \{ \ts b \link "lockimage" "hlp_arexx8/lockimage"\}
* User Interface: \{ \tc 15 Buffer Panel
Unlock a Buffer\}
\endnode
\node "unplug"
\title "Unplug"
\next "userload"
\prev "unlocksecondary"
\{ \tc 15 Unplug \} - Required after the use of Plugin.
\nw
Usage - '\{ \tc 15 unplug <plugpointer>\} '
\{ \ts bu Sample Script\} :
options results;
'plugin';
plug = result;
options;
'backuptoundo';
address command;
'cmpi:myfile '||plugptr;
'\{ \tc 15 unplug\} ';
address(prtnme);
'redraw';
\endnode
\node "userload"
\title "Userload"
\next "version"
\prev "unplug"
\{ \tc 15 Userload \} - Loads an image buffer, and the user selects the
target for the buffer.
Uses the current image path and extension and to load an image.
\nw
Usage - '\{ \tc 15 userload <filename>\} '
\{ \ts bu Sample Script\} :
options results;
'askstring "Buffername:" "myfile"'name;
name = result;
options;
'\{ \tc 15 userload\} ' name;
\endnode
\node "version"
\title "Version"
\next "vertflip"
\prev "userload"
\{ \tc 15 Version \} - Returns a string with the current Version and Revision.
\nw
Usage - '\{ \tc 15 version\} '
\{ \ts bu Sample Script\} :
options results;
'\{ \tc 15 version\} ';
info = result;
parse var info version','revision;
options;
'message Version: 'version' Revision: ' revision;
\endnode
\node "vertflip"
\title "Vertical Flip"
\next ""
\prev "version"
\{ \tc 15 Vertflip \} - Each column in a selected region is fliped vertically.
\nw
Usage - '\{ \tc 15 vertflip [mask flip 1 or 0]\} '
The optional mask flip parameter allows you to flip the image's mask or to
flip the image within its mask. A setting of 1 or ON will flip the image and
the mask, and a setting of 0 or OFF will flip the image within the mask.
\{ \ts bu Sample Script\} :
'area';
'\{ \tc 15 vertflip\} ';
* User Interface: \{ \tc 15 Process Panel
Geometric Transformations
Vert Flip\}
\endnode